// 生成token
const jwt = require('jsonwebtoken');
// 解析token
const { expressjwt: expressJWT } = require("express-jwt");
//定义secret密钥
const secretKey='tedu123'

module.exports = {
  /**
   * 
   * @param {对象} obj 传递对象用于生成token 
   * @param {字符串} time token的生效时间
   * @returns 
   */
  setToken: (obj,time) => {
    return jwt.sign(
      // obj,secretKey,{expiresIn:time}
      obj,secretKey
    )
  },
  // 解析token
  //HS256 使用同一个「secret_key」进行签名与验证 
  //RS256 是使用 RSA 私钥进行签名，使用 RSA 公钥进行验证。
  verify: () => {
    return expressJWT({secret:secretKey,algorithms: ["HS256"]})
    .unless({
      // path:[/^\/api\//]   // /匹配的内容/ ^不在\转义/api/
      path: ['/users/login', /^\/upload\//] //⽩白名单,除了了这⾥里里写的地址，其他的URL都需要验证
    })
  }
}